package GameEngine.Drawables.Tile;

import java.util.HashMap;

import processing.core.PImage;
import GameEngine.helper.PAppletBridge;

public class TileBuffer extends HashMap<String, Tile> {
	private static int ID = 0;
	private final String TILE_ID = "TILE_";

	// Assozierter TileImageBuffer
	private TileImageBuffer TIB = new TileImageBuffer();

	/**
	 * Einfuegen einer Tile mit generierter eindeutiger ID
	 * 
	 * @param t
	 *            Tile, die eingefuegt
	 */
	public void add(Tile t) {
		super.put(generateID(), t);
	}

	private String generateID() {
		return TILE_ID + ID++;
	}

	// Zugriff auf TileImageBuffer
	public int addImage(PImage img, String imageName) {
		return (TIB.add(img, imageName));
	}

	// Zeichnen des Buffers

	public void draw() {
		for (Tile t : this.values()) {
			PAppletBridge.image(TIB.get(t.getFname()).img, t.getPosX(),
					t.getPosY(), t.getWidth(), t.getHeight());
		}

	}

	public void drawAt(int x, int y) {
		PAppletBridge.pushMatrix();
		PAppletBridge.translate(x,y);
		draw();
		PAppletBridge.popMatrix();
	}

}
